//封装request方法
import axios from 'axios';
import Qs from 'qs';

// 导入提示框对象
import { Message } from 'element-ui';

// 导入本地存储
import local from "../utils/local.js";

//配置默认参数
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/';

// // 添加请求拦截器
axios.interceptors.request.use(
    function (config) {

        // 在发送请求之前做些什么
        config.headers.Authorization=local.get("mydb_token");//token 是在登录成功后服务器返回的值
        return config;
    },
    function (error) {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 添加响应拦截器
axios.interceptors.response.use(
    function (response) {
        // 判断响应的结果中是否存在code和msg的属性
    //hasOwnProperty : 用于判断对象中是否包含该属性
        if(response.data.hasOwnProperty("code") && response.data.hasOwnProperty("msg") ){
            let {code,msg}=response.data;
            if(code==400||code==401||code==403||code==404||code==500){
                Message.error(msg)
            }
        }
        // 对响应数据做点什么
        return response.data;
    },
    function (error) {
        // 对响应错误做点什么
        return Promise.reject(error);
    }
);

const request = (url, params, method) => {
    return axios({
        url,
        method,
        data: method == 'post'|| method == 'put' ? params: '',
        params:method=='get'|| method=='delete'?params:''
    })
}

export default {
    get(url, params) {
        return request(url, params, 'get');
    },
    post(url, params) {
        return request(url, params, 'post');
    },
    delete(url,params){
        return request(url,params,"delete");
    },
    put(url,params){
        return request(url,params,"put");
    }

}


